package com.lzy.cloud.order.service;

import com.github.pagehelper.PageInfo;
import com.lzy.cloud.order.dos.OrderActionDO;
import com.lzy.cloud.order.dtos.OrderInfoDto;
import com.lzy.cloud.order.dtos.pay.OrderPayDto;
import com.lzy.cloud.order.dtos.pay.OrderPayParamsDto;
import com.lzy.framework.core.orm.db.Pager;

/**
 * 订单总表
 * Created by WIN7 on 2018/6/6.
 */
public interface OrderInfoService {

    /**
     * 查询订单列表
     * @param pager
     * @param orderInfoDto
     * @return
     */
    PageInfo<OrderInfoDto> queryList(Pager pager,OrderInfoDto orderInfoDto);

    /**
     * 方法说明：根据订单号查找订单
     * @param   orderId
     * @return      
     * @date        2018/7/10 10:38
     */
    OrderInfoDto find(String orderId);
    
    /**
     * 方法说明：根据订单号查询支付信息
     * @param orderId
     * @return
     * @date        2018/7/10 11:42
     */
    OrderPayDto findToPay(String orderId);

    /**
     * 创建订单
     * @param orderInfoDto
     * @return
     */
    boolean create(OrderInfoDto orderInfoDto);

    /**
     * 更新订单
     * @param orderInfoDto
     * @return
     */
    boolean update(OrderInfoDto orderInfoDto);

    /**
     * 方法说明：支付后更新相关信息
     * @param orderPayParamsDto
     * @return
     * @date        2018/7/10 12:03
     */
    Boolean updateFromPay(OrderPayParamsDto orderPayParamsDto);
    
    /**
     * 方法说明：退款更新相关信息
     * @param orderPayParamsDto
     * @return
     * @date        2018/7/10 12:03
     */
    Boolean updateFromRefund(OrderPayParamsDto orderPayParamsDto);

    /**
     * 方法说明：更新订单
     * @date   2018/7/10 15:52
     */
    Boolean updateStatus(OrderActionDO oaDO);
}
